<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
      /*
        变量：先声明，在调用
        函数：先声明，在调用。
        构造函数：先声明，在调用
        构造函数是一种特殊的函数。
        特殊地方：构造函数的返回值是一个对象。、
        构造函数就是用来创建拥有相同属性和方法的对象。

        构造函数的声明：
        构造函数的声明：var 对象名 = new 构造函数(实参);

        语法结构：
          function 构造函数名(形参){
              this.属性 = value;
              this.属性1 = value1;
              this.方法名 = function(){
                  console.log("释放了某个技能");
              }
          }
      */
     function Student(subject,school){
         this.subject = subject;
         this.school = school;
         this.learn = function(){
             console.log("我在学习 js");
         };
     }
     var zhangsan = new Student("语文", "郑州大学");
     //   var obj = new Object();
      /* 
            new 关键字的执行过程
            1. 创建了一个空的对象。申请了内存空间
            2. this 指向了当前对象
            3. 空对象进行属性的赋值
            4. 返回这个对象。return 省略了
        */
    </script>
</body>
</html>